def solution(n, b, sequence):
    # 创建一个长度为 n+1 的列表，用于存储前缀和
    prefix_sum = [0] * (n + 1)
    # 计算前缀和
    for i in range(1, n + 1):
        prefix_sum[i] = prefix_sum[i - 1] + sequence[i - 1]

    count = 0
    # 遍历所有可能的子数组起点
    for i in range(n + 1):
        # 遍历所有可能的子数组终点（起点 i 之后的位置）
        for j in range(i + 1, n + 1):
            # 计算子数组的和（利用前缀和相减）
            subarray_sum = prefix_sum[j] - prefix_sum[i]
            # 如果子数组和能被 b 整除
            if subarray_sum % b == 0:
                count += 1
    return count


if __name__ == "__main__":
    #  You can add more test cases here
    sequence = [1, 2, 3]
    print(solution(3, 3, sequence) == 3)
